import { IConfig } from 'umi'; // ref: https://umijs.org/config/
import packages from './packages-config';
import { join } from 'path';

// 整体配置项参考umi配置 https://umijs.org/zh-CN/config
export default {
  // devtool: process.env.NODE_ENV === 'development' ? 'eval' : false,
  webpack5:{},// 必须开启
  // 配置主题，实际上是配 less 变量。
  theme: {
    'input-height-base': '28px',
    'btn-height-base': '28px',
    'font-size-base': '12px',
    'text-color': '#333',
    'border-radius-base': '2px',
    'primary-color': '#29BECE',
    'layout-header-height': '48px',
    'modal-mask-bg': 'rgba(0, 0, 0, 0.288)',
    'pagination-item-size': '26px',
    'form-item-margin-bottom': '14px',
    'icon-url': '/assets/hzero-ui/font_148784_v4ggb6wrjmkotj4i',
    // 'iconfont-css-prefix': 'c7n', // 设置 c7n 图标 class 前缀
  },
  // 是否启用按需加载
  dynamicImport: {
    loading: '@hzerojs/plugin-layout/browsers/components/PageLoading',
  },
  // fastRefresh: {},
  // 配置环境变量
  define: {
    'process.env': {
      API_HOST: 'http://hzero-backend.open-front.hand-china.com',
      PLATFORM_VERSION: 'SASS',
      CLIENT_ID: 'localhost',
    },
  },
  manifest: {
    basePath: '/',
  },
  alias: {
    // 'components': 'hzero-front/lib/components',
    // 'utils': 'hzero-front/lib/utils',
    // 'services': 'hzero-front/lib/services',
    // '@/assets': join(__dirname, '../src/assets'),
  },
  plugins: [
    require.resolve('hzero-front'),
  ],
  presets: [
    require.resolve('@hzerojs/preset-hzero'),
    // 'hzero-cli-preset-ui',
  ],
  hzeroUed: {
  },
  hzeroMicro: {
    mfDepPresets: [
      '@hzerojs/mf-deps-preset',
    ],
    mfExposes: {
      TestCom: '@/components/Test1'
    },
    mfGlobalConfig: {
      // 远程加载的组件位置配置， 用来表示未知道位置的远程组件所在的包位置
      mfCodeExposes: {
        '_hzero_layout.TEST-LAYOUT': {
          package: 'hzero-front-hpfm',
        },
        '_hzero_layout_cards.TEST-CARD': {
          package: 'hzero-front-hiam',
        },
        'TEST2-CARD': {
          package: 'test_module1`',
          code: 'TestCom',
        },
      },
    },
    // 子模块配置 在这里面配置后当执行build:ms的时候可以选择到对应的子模块
    packages,
    // 配置公共模块，在打包的时候会预先编译公共模块
    // common: [
    //   {
    //     name: 'demo1',
    //   },
    // ],
    // 指定暴露出去的模块
    // mfExposes: {
    //   TestCom: '@/components/TestCom',
    // },
  },
  // 开启esbuild
  // esbuild: {},
  hash: true,
  // 同 umi routes https://umijs.org/zh-CN/config#routes
  routes: [

    {
      path: 'blank',
      name: 'blank',
      icon: 'smile',
      authorized: true,
      component: './blank',
    },
  ],
  extraBabelPlugins: [
    [
      'module-resolver',
      {
        root: ['./'],
        alias: {
          '@': './src',
          // '@common': 'hzero-front-demo-common/src',
        },
      },
    ],
  ],
} as IConfig;
